package com.education.welco.service;


import com.education.common.pojo.TStudent;
import com.education.welco.pojo.TClass;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 学生入学 服务层
 *
 * @author d
 * @date 2020-05-08
 */
public interface ITStudentService {

    /**
     * 查询学生入学信息
     *
     * @param id 学生入学ID
     * @return 学生入学信息
     */
    public TStudent selectTStudentById(Integer id);


    public TStudent selectTStudentById2(Integer userId);

    /**
     * 查询学生入学列表
     *
     * @param tStudent 学生入学信息
     * @return 学生入学集合
     */
    public List<TStudent> selectTStudentList(TStudent tStudent);


    public List<TStudent> selectTStudentList1(Integer classId);

    /**
     * 查询大于等于此id 的数据列表
     *
     * @param id
     * @return
     */
    public List<TStudent> selectTStudentByIdGreater(Integer id);

    /**
     * 查询学生入学列表
     *
     * @param tStudent 学生入学信息
     * @return 学生入学集合
     */
    public List<TStudent> selectTStudentListOther(TStudent tStudent);

    /**
     * 查询学生入学列表
     *
     * @param tStudent 学生入学信息
     * @return 学生入学集合
     */
    public List<TStudent> selectTStudentListOther2(TStudent tStudent);

    //不包含驳回的学生
    public List<TStudent> selectStudentListRemovebohui(TStudent tStudent);

    /**
     * 新增学生入学
     *
     * @param tStudent 学生入学信息
     * @return 结果
     */
    public int insertTStudent(TStudent tStudent);

    /**
     * 更新用户表用户班级学校信息
     *
     * @param userId
     * @param classId
     * @param schoolId
     * @return
     */
    public int updateInfoForUser(Integer userId, Integer classId, Integer schoolId, Integer sysType, Integer customerType);

    /**
     * 修改学生入学
     *
     * @param tStudent 学生入学信息
     * @return 结果
     */
    public int updateTStudent(TStudent tStudent);

    //根据userId修改学生信息
    public int updateByUserId(TStudent tStudent);

    /**
     * 删除学生入学信息
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteTStudentByIds(String ids);


    public int deleteTStudentById(Integer id);


    /**
     * 导入学生信息
     *
     * @param fileName 需要删除的数据ID
     * @param file     需要删除的数据ID
     * @param schoolId 需要删除的数据ID
     * @return 结果
     */
    boolean threeBatchQuesionImport(String fileName, MultipartFile file, Integer schoolId) throws Exception;

    /**
     * @param phone 唯一标识 手机号
     * @return
     */
    TStudent judgeStudent(String phone);

    TStudent judgeStudent2(String phone);

    Integer selectStudentNumByClassId(List<Integer> classIdList);

    List<Integer> selectClassIdListByTeaId(Integer teacherUserId);

    List<TClass> selectClassListByTeaId(Integer teacherUserId);

    /**
     * 根据学生用户id查询学生信息和班级信息
     *
     * @param userId
     * @return
     */
    TStudent queryStudentAndClassByStuUserId(Integer userId);

    //app端登录，并创建登录时间
    TStudent selectClassInfoByPhone(String phone);

    /**
     * sys_user_role新增角色关系
     *
     * @param userId
     * @param roleId
     */
    int insertUserRoleInUser(Integer userId, Integer roleId);
}